var express = require('express');
var router = express.Router();
const pro = require("../sql/pro");
const sql = require("../sql/sql");

/**
* @apiGroup 商品信息
* @api {get} /api/pro 获取商品数据
* @apiVersion 0.0.0
* @apiDescription 请求所有商品数据，哈哈
* @apiSuccess {number} code 请求状态
* @apiSuccess {string} title 请求说明
* @apiSuccess {array} msg 请求数据
* @apiSuccessExample {json} Success-Response:
    res.send({
        code:200,
        title:"请求成功",
        msg:data
    })
    res.send({
        code:201,
        title:"请求失败",
        msg:"NOT DATA"
    })
* @apiSampleRequest http://localhost:4000/api/pro
*/

// 获取所有商品数据的接口
router.get('/', function(req, res, next) {
  sql.getData(pro).then(data=>{
      res.send({
          code:200,
          title:"请求成功",
          msg:data
      })
  }).catch(err=>{
      res.send({
          code:201,
          title:"请求失败",
          msg:"NOT DATA"
      })
  });
});


/**
* @apiGroup 商品信息
* @api {get} /api/pro/detail 获取商品详情数据
* @apiVersion 0.0.0
* @apiDescription 请求指定商品详情数据，嘿嘿
* @apiParam {String} id="" 要获取的商品详情的商品id
* @apiSuccess {number} code 请求状态
* @apiSuccess {string} title 请求说明
* @apiSuccess {array} msg 请求数据
* @apiSuccessExample {json} Success-Response:
    res.send({
        code:200,
        title:"请求成功",
        msg:data[0]
    })
    res.send({
        code:201,
        title:"请求失败",
        msg:"NOT DATA"
    })
* @apiSampleRequest http://localhost:4000/api/pro/detail
*/

// 获取商品详情的接口
router.get('/detail', function(req, res, next) {
  sql.getData(pro,{proId:req.query.id}).then(data=>{
      res.send({
          code:200,
          title:"请求成功",
          msg:data[0]
      })
  }).catch(err=>{
      res.send({
          code:201,
          title:"请求失败",
          msg:"NOT DATA"
      })
  });
});



/**
* @apiGroup 商品信息
* @api {get} /api/pro/search 模糊搜索商品名称
* @apiVersion 0.0.0
* @apiDescription 模糊搜索商品名称，嘻嘻
* @apiParam {String} sKey="" 要搜索的关键字
* @apiSuccess {number} code 请求状态
* @apiSuccess {string} title 请求说明
* @apiSuccess {array} msg 请求数据
* @apiSuccessExample {json} Success-Response:
    res.send({
        code:200,
        title:"请求成功",
        msg:data
    })
    res.send({
        code:201,
        title:"请求成功，但是没有数据",
        msg:"NOT DATA"
    })
    res.send({
        code:202,
        title:"请求失败",
        msg:"NOT DATA"
    })
* @apiSampleRequest http://localhost:4000/api/pro/search
*/

// 模糊搜索名称
router.get('/search', function(req, res, next) {
  let reg = new RegExp(req.query.sKey);
  sql.getData(pro,{proname: reg}).then(data=>{
      if(data.length > 0){
          res.send({
              code:200,
              title:"请求成功",
              msg:data
          })
      }else{
          res.send({
              code:201,
              title:"请求成功，但是没有数据",
              msg:"NOT DATA"
          })
      }
  }).catch(err=>{
      res.send({
          code:202,
          title:"请求失败",
          msg:"NOT DATA"
      })
  });
});



/**
* @apiGroup 商品信息
* @api {get} /api/pro/page 获取指定分页数据
* @apiVersion 0.0.0
* @apiDescription 获取指定分页数据
* @apiParam {Number} num=10 单页要显示的数据条数，默认单页10条
* @apiParam {Number} index=0 查询的页码，默认为0，表示第一页
* @apiSuccess {number} code 请求状态
* @apiSuccess {string} title 请求说明
* @apiSuccess {array} msg 请求数据
* @apiSuccessExample {json} Success-Response:
    res.send({
        code:200,
        title:"请求成功",
        msg:data
    })
* @apiSampleRequest http://localhost:4000/api/pro/page
*/

// 获取指定分页数据
router.get('/page', function(req, res, next) {
  let num = req.query.num-0;
  let index = req.query.index * 1;
  sql.getPageData(pro, num, index).then(data=>{
      res.send({
          code:200,
          title:"请求成功",
          msg:data
      })
  });
});


/**
* @apiGroup 商品信息
* @api {get} /api/pro/kind 获取商品分类
* @apiVersion 0.0.0
* @apiDescription 获取商品分类，嘿嘿
* @apiSuccess {number} code 请求状态
* @apiSuccess {string} title 请求说明
* @apiSuccess {array} data 请求数据
* @apiSuccessExample {json} Success-Response:
* {
*    "code":200,
*    "title":"请求成功",
*    "data":[{},{},...]
* }
* @apiError {number} code 请求状态
* @apiError {string} title 请求说明
* @apiError {array} data 请求数据
* @apiErrorExample {json} Error-Response:
* {
*    "code":204,
*    "title":"请求失败",
*    "data":"NOT DATA"
* }
* @apiSampleRequest http://localhost:4000/api/pro/kind
*/
router.get('/kind',function(req,res,next){
  sql.getKind(pro,"kind").then(data=>{
      res.send({
          code:200,
          title:"请求成功",
          data:data
      })
  })
})


/**
* @apiGroup 商品信息
* @api {get} /api/pro/kindpro 获取指定分类下的数据
* @apiVersion 0.0.0
* @apiDescription 获取指定活动分类下的商品数据
* @apiParam {String} kind="" 要获取的商品详情的商品kind
* @apiSuccess {number} code 请求状态
* @apiSuccess {string} title 请求说明
* @apiSuccess {array} msg 请求数据
* @apiSuccessExample {json} Success-Response:
    res.send({
        code:200,
        title:"请求成功",
        msg:data
    })
    res.send({
        code:201,
        title:"请求失败",
        msg:"NOT DATA"
    })
* @apiSampleRequest http://localhost:4000/api/pro/kindpro
*/

// 获取商品详情的接口
router.get('/kindpro', function(req, res, next) {
  let kind = req.query.kind;
  sql.getData(pro,{kind:kind}).then(data=>{
      res.send({
          code:200,
          title:"请求成功",
          msg:data
      })
  }).catch(err=>{
      res.send({
          code:201,
          title:"请求失败",
          msg:"NOT DATA"
      })
  });
});




/**
* @apiGroup 商品信息
* @api {get} /api/pro/event 获取商品活动分类
* @apiVersion 0.0.0
* @apiDescription 获取商品分类，嘿嘿
* @apiSuccess {number} code 请求状态
* @apiSuccess {string} title 请求说明
* @apiSuccess {array} data 请求数据
* @apiSuccessExample {json} Success-Response:
* {
*    "code":200,
*    "title":"请求成功",
*    "data":[{},{},...]
* }
* @apiError {number} code 请求状态
* @apiError {string} title 请求说明
* @apiError {array} data 请求数据
* @apiErrorExample {json} Error-Response:
* {
*    "code":204,
*    "title":"请求失败",
*    "data":"NOT DATA"
* }
* @apiSampleRequest http://localhost:4000/api/pro/event
*/
router.get('/event',function(req,res,next){
  sql.getKind(pro,"event").then(data=>{
      res.send({
          code:200,
          title:"请求成功",
          data:data
      })
  })
})


/**
* @apiGroup 商品信息
* @api {get} /api/pro/eventpro 获取指定活动分类下的分页数据
* @apiVersion 0.0.0
* @apiDescription 获取指定活动分类下的商品数据
* @apiParam {String} event="" 要获取的商品详情的商品event
* @apiParam {Number} num=10 单页要显示的数据条数，默认单页10条
* @apiParam {Number} index=0 查询的页码，默认为0，表示第一页
* @apiSuccess {number} code 请求状态
* @apiSuccess {string} title 请求说明
* @apiSuccess {array} msg 请求数据
* @apiSuccessExample {json} Success-Response:
    res.send({
        code:200,
        title:"请求成功",
        msg:data
    })
    res.send({
        code:201,
        title:"请求失败",
        msg:"NOT DATA"
    })
* @apiSampleRequest http://localhost:4000/api/pro/eventpro
*/

// 获取商品详情的接口
router.get('/eventpro', function(req, res, next) {
  let num = req.query.num-0;
  let index = req.query.index * 1;
  let event = req.query.event;

  sql.getPageData(pro,num,index,{event:event}).then(data=>{
      res.send({
          code:200,
          title:"请求成功",
          msg:data
      })
  }).catch(err=>{
      res.send({
          code:201,
          title:"请求失败",
          msg:"NOT DATA"
      })
  });
});


module.exports = router;